export default function buildTree(data) {
  const tree = []
  const map = new Map()
  // 先将所有数据以id为键存储到map中，方便后续查找父节点和构建树
  data.forEach(item => {
    map.set(item.id, { ...item, children: [] })
  })
  // 遍历数据，构建树结构
  data.forEach(item => {
    const parentId = item.pid
    if (parentId === 0) {
      // 如果pid为0，说明是根节点，直接添加到树中
      tree.push(map.get(item.id))
    } else {
      // 找到父节点，将当前节点添加到父节点的children数组中
      const parent = map.get(parentId)
      if (parent) {
        parent.children.push(map.get(item.id))
      }
    }
  })
  return tree
}
